package edu.hwadee.BEIS.entity;
// default package

import java.sql.Timestamp;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import org.hibernate.annotations.GenericGenerator;

import com.alibaba.fastjson.annotation.JSONField;

/**
 * StudenetBasicSituation entity. @author MyEclipse Persistence Tools
 */
@Entity
@Table(name = "student_basic_situation", catalog = "beis")

public class StudentBasicSituation implements java.io.Serializable {

	// Fields

	private Integer studentBasicSituationId;
	private SchoolBasicInfor schoolBasic;
	private Integer studentCount;
	private Integer classCount;
	private Integer loseStudentCount;
	private Float graduateDoubleCertificateRate;
	private Integer nationalCompetitionAwardCount;
	private Integer provinceCompetitionAwardCount;
	private Integer cityCompetitionAwardCount;
	private Integer internationalCertificateCount;
	private Short countyAuditStatus;
	private Short cityAuditStatus;
	@JSONField(format = "yyyy-MM-dd HH:mm:ss")
	private Date modifyTime;

	// Constructors

	/** default constructor */
	public StudentBasicSituation() {
	}

	/** full constructor */
	public StudentBasicSituation(SchoolBasicInfor schoolBasic, Integer studentCount, Integer classCount,
			Integer loseStudentCount, Float graduateDoubleCertificateRate, Integer nationalCompetitionAwardCount,
			Integer provinceCompetitionAwardCount, Integer cityCompetitionAwardCount,
			Integer internationalCertificateCount, Short countyAuditStatus, Short cityAuditStatus,
			Timestamp modifyTime) {
		this.schoolBasic = schoolBasic;
		this.studentCount = studentCount;
		this.classCount = classCount;
		this.loseStudentCount = loseStudentCount;
		this.graduateDoubleCertificateRate = graduateDoubleCertificateRate;
		this.nationalCompetitionAwardCount = nationalCompetitionAwardCount;
		this.provinceCompetitionAwardCount = provinceCompetitionAwardCount;
		this.cityCompetitionAwardCount = cityCompetitionAwardCount;
		this.internationalCertificateCount = internationalCertificateCount;
		this.countyAuditStatus = countyAuditStatus;
		this.cityAuditStatus = cityAuditStatus;
		this.modifyTime = modifyTime;
	}

	// Property accessors
	@GenericGenerator(name = "generator", strategy = "increment")
	@Id
	@GeneratedValue(generator = "generator")

	@Column(name = "student_basic_situation_id", unique = true, nullable = false)

	public Integer getStudentBasicSituationId() {
		return this.studentBasicSituationId;
	}

	public void setStudentBasicSituationId(Integer studentBasicSituationId) {
		this.studentBasicSituationId = studentBasicSituationId;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "school_id", nullable = false)

	public SchoolBasicInfor getSchoolBasic() {
		return this.schoolBasic;
	}

	public void setSchoolBasic(SchoolBasicInfor schoolBasic) {
		this.schoolBasic = schoolBasic;
	}

	@Column(name = "student_count", nullable = false)

	public Integer getStudentCount() {
		return this.studentCount;
	}

	public void setStudentCount(Integer studentCount) {
		this.studentCount = studentCount;
	}

	@Column(name = "class_count", nullable = false)

	public Integer getClassCount() {
		return this.classCount;
	}

	public void setClassCount(Integer classCount) {
		this.classCount = classCount;
	}

	@Column(name = "lose_student_count", nullable = false)

	public Integer getLoseStudentCount() {
		return this.loseStudentCount;
	}

	public void setLoseStudentCount(Integer loseStudentCount) {
		this.loseStudentCount = loseStudentCount;
	}

	@Column(name = "graduate_doublecertificate_rate", nullable = false, precision = 12, scale = 0)

	public Float getGraduateDoubleCertificateRate() {
		return this.graduateDoubleCertificateRate;
	}

	public void setGraduateDoubleCertificateRate(Float graduateDoubleCertificateRate) {
		this.graduateDoubleCertificateRate = graduateDoubleCertificateRate;
	}

	@Column(name = "national_competition_award_count", nullable = false)

	public Integer getNationalCompetitionAwardCount() {
		return this.nationalCompetitionAwardCount;
	}

	public void setNationalCompetitionAwardCount(Integer nationalCompetitionAwardCount) {
		this.nationalCompetitionAwardCount = nationalCompetitionAwardCount;
	}

	@Column(name = "province_competition_award_count", nullable = false)

	public Integer getProvinceCompetitionAwardCount() {
		return this.provinceCompetitionAwardCount;
	}

	public void setProvinceCompetitionAwardCount(Integer provinceCompetitionAwardCount) {
		this.provinceCompetitionAwardCount = provinceCompetitionAwardCount;
	}

	@Column(name = "city_competition_award_count", nullable = false)

	public Integer getCityCompetitionAwardCount() {
		return this.cityCompetitionAwardCount;
	}

	public void setCityCompetitionAwardCount(Integer cityCompetitionAwardCount) {
		this.cityCompetitionAwardCount = cityCompetitionAwardCount;
	}

	@Column(name = "international_certificate_count", nullable = false)

	public Integer getInternationalCertificateCount() {
		return this.internationalCertificateCount;
	}

	public void setInternationalCertificateCount(Integer internationalCertificateCount) {
		this.internationalCertificateCount = internationalCertificateCount;
	}

	@Column(name = "county_auditstatus", nullable = false)

	public Short getCountyAuditStatus() {
		return this.countyAuditStatus;
	}

	public void setCountyAuditStatus(Short countyAuditStatus) {
		this.countyAuditStatus = countyAuditStatus;
	}

	@Column(name = "city_auditstatus", nullable = false)

	public Short getCityAuditStatus() {
		return this.cityAuditStatus;
	}

	public void setCityAuditStatus(Short cityAuditStatus) {
		this.cityAuditStatus = cityAuditStatus;
	}

	@Column(name = "modify_time", nullable = false, length = 19)

	public Date getModifyTime() {
		return this.modifyTime;
	}

	public void setModifyTime(Date modifyTime) {
		this.modifyTime = modifyTime;
	}

}